package com.tsunami.message.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tsunami.message.entity.MsgLog;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author lx
 * @date 2024-09-19
 */
public interface IMsgLogService extends IService<MsgLog> {
    /**
     * 插入消息日志
     * @param msgLog
     */
    void insert(MsgLog msgLog);

    /**
     * 更新消息状态
     * @param msgId
     * @param status
     * @param result
     */
    void updateStatus(String msgId, Integer status, String result);

    /**
     * 查询需要重新投递的消息
     * @return
     */
    List<MsgLog> selectFailMsg();

    /**
     * 更新重试次数
     * @param msgLog
     */
    void updateTryCount(MsgLog msgLog);

    /**
     * 查询消息信息
     * @param msgId
     * @return
     */
    MsgLog selectByPrimaryKey(String msgId);

    /**
     * 下次重试时间
     * @param msgId 消息ID
     * @param count 重试次数
     */
    void updateNextTryTime(String msgId,int count);

}
